package task6;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;

/**
 * Create by IntelliJ IDEA
 *
 * @author: jsonor
 * @date-Time: 2018/5/4 10:22
 * @description:
 */
public class CharCode {
  /*1、手动操作：d盘新建a.txt文件,写入几个中文（可以查看默认是ANSI编码,在简体中文Windows操作系统中，ANSI 编码代表 GBK 编码），
*   2、用Java代码实现文件拷贝（将d盘a.txt文件拷贝到当前目录），会出现乱码,
*   3、利用转换流可以解决乱码问题*/

  public static void main(String[] args) throws Exception{
    /*1、D盘的a.txt是GBK编码，用转换流（制定GBK编码）
    * 2、在使用字符缓冲流 一次读写一行文本*/
    //创建转换流对象：参数：字节流对象，编码格式（输入流的编码格式一定要跟源文件编码一致）
    InputStreamReader isr=new InputStreamReader
        (new FileInputStream("d:\\a.txt"),"gbk");
    OutputStreamWriter osw=new OutputStreamWriter
        (new FileOutputStream("pan.txt"),"utf-8");

    //利用字符缓冲流实现一次读写一行文本（使用转换流来构造）
    BufferedReader br=new BufferedReader(isr);
    BufferedWriter bw=new BufferedWriter(osw);

    String line=null;
    while ((line=br.readLine())!=null){
      bw.write(line);
      bw.newLine();
    }
    br.close();
    bw.close();
    isr.close();
    osw.close();
  }
}
